﻿using SanJ.FreeCare.EntityFrameworkCore;
using SanJ.FreeCare.Medications;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore;

namespace SanJ.FreeCare.Locations
{
    public class EfCoreLocationRepository : EfCoreRepository<FreeCareDbContext, Location, Guid>, ILocationRepository
    {
        public EfCoreLocationRepository(IDbContextProvider<FreeCareDbContext> dbContextProvider)
        : base(dbContextProvider)
        {

        }

        public Task<int> GetActiveLocationCountAsync(string locCode, string locType, string locPhysicalType)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetAllChildrenWithParentCodeAsync(string code, Guid? parentId, bool isAsNoTracking = true, CancellationToken cancellationToken = default)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetAllHospitalLocListAsync()
        {
            throw new NotImplementedException();
        }

        public Task<Location> GetByCodeAsync(string code, bool isAsNoTracking = true)
        {
            throw new NotImplementedException();
        }

        public Task<Location> GetByIdAsync(Guid id, bool isAsNoTracking = true)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetChildrenAsync(Guid? parentId, CancellationToken cancellationToken = default)
        {
            throw new NotImplementedException();
        }

        public Task<string> GetCodeByIdAsync(Guid id)
        {
            throw new NotImplementedException();
        }

        public Task<long> GetCountAsync(string filter, CancellationToken cancellationToken = default)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetEmergencyCanTriageLocationAsync(string parentLocationCode)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetEmergencyLocationByPhysicalTypeAsync(string locationCode, string physicalType)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetEmergencyLocationByTypeAsync(string locationCode, string type)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetEmptyListAsync(string code, bool isAsNoTracking = true, CancellationToken cancellationToken = default)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetListAsync(string code, bool isAsNoTracking = true, CancellationToken cancellationToken = default)
        {
            throw new NotImplementedException();
        }

        public Task<List<Location>> GetPagedListAsync(string filter, string sorting, int maxResultCount, int skipCount)
        {
            throw new NotImplementedException();
        }
    }
}
